#ifndef __HOOK__
#define __HOOK__

#include <windows.h>

// code borrowed from OBS

class HookData
{
  BYTE data[14];
  FARPROC func;
  FARPROC hookFunc;
  bool hooked;
  bool is64;
public:
  HookData()
    : func(NULL)
    , hookFunc(NULL)
    , hooked(false)
    , is64(false)
  {}
  ~HookData()
  {
    unhook();
  }

  bool init(void* src, void* dst);
  void hook();
  void unhook();
};

#endif // __HOOK__
